package com.atguigu.mock.main;

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * @ClassName: LogUploader
 * @Description:
 * @Author: kele
 * @Date: 2021/3/16 15:49
 *
 * 上传日志，通过http向页面发送请求
 *
 **/
public class LogUploader {

    public static void sendLogStream(String log){
        try{
            //不同的日志类型对应不同的URL
            URL url  =new URL("http://hadoop102:81/gmall1026/log");

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            //设置请求方式为post
            conn.setRequestMethod("POST");

            //时间头用来供server进行时钟校对的
            conn.setRequestProperty("clientTime",System.currentTimeMillis() + "");

            //允许上传数据
            conn.setDoOutput(true);

            //设置请求的头信息,设置内容类型为JSON
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            System.out.println("upload" + log);

            //输出流
            OutputStream out = conn.getOutputStream();

            //获取web应用的连接后，向web应用写字符串，属性名为logstring，
            //在接受的control中也必须要使用名为logstring来接收
            out.write(("logString="+log).getBytes());
            out.flush();
            out.close();

            //连接的相应码，200正常，4xx客户端错误，可能是地址错误，5xx是服务器错误
            int code = conn.getResponseCode();
            System.out.println(code);
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

}
